package main

import (
	"log"

	"reflect"

	"fmt"

	"github.com/Unknwon/goconfig"
)

func main() {
	cfg, err := goconfig.LoadConfigFile("./config/config.ini")
	if err != nil {
		log.Fatalf("无法加载配置文件,%s", err)
	}
	val, err := cfg.GetValue(goconfig.DEFAULT_SECTION, "key_default")
	if err != nil {
		log.Fatalf("读取配置文件发生错误(%s),%s", "key_default", err)
	}
	log.Printf("%s > %s,%s", goconfig.DEFAULT_SECTION, "key_default", val)

	isInsert := cfg.SetValue(goconfig.DEFAULT_SECTION, "key_default", "你好吗")
	if err != nil {
		log.Fatalf("设置配置文件发生错误(%s),%s", "key_default", err)
	}
	log.Println(isInsert)

	comment := cfg.GetSectionComments("super")
	if err != nil {
		log.Fatalf("操作配置注释发生错误%s", err)
	}
	log.Println(comment)

	f64, err := cfg.Float64("must", "int")
	if err != nil {
		log.Fatalf("获取配置文件出错%s", err)
	}
	log.Println(reflect.TypeOf(f64))

	intcomment := cfg.GetKeyComments("must", "int")
	if err != nil {
		log.Fatalf("int配置注释获取出错%s", err)
	}
	log.Println(intcomment)

	mustList := cfg.GetKeyList("must")
	if err != nil {
		log.Fatalf("获取keyList出错%s", err)
	}
	log.Println(mustList)
	for _, v := range mustList {
		getVal, err := cfg.GetValue("must", v)
		if err != nil {
			log.Fatalf("获取配置列表出错%s", err)
		}
		log.Println(getVal)
	}

	isSet := cfg.SetKeyComments("must", "int64", "int64的注释")
	fmt.Println(isSet)

	int64comment := cfg.GetKeyComments("must", "int64")
	if err != nil {
		log.Fatalf("获取int64的注释出错%s", err)
	}
	log.Println(int64comment)
}
